home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1997 #1 / Amiga Plus CD - 1997 - No. 01.iso / pd / programmierung / proasm / examples / helloworld / helloworld.s < prev   
Text File  |  1995-04-12  |  950b  |  64 lines

  1. *
  2. *
  3. * HelloWorld.s    - a small helloworld example in assembler
  4. *
  5. *
  6.  
  7.  
  8.     OUTPUT    'ram:HelloWorld'    ; write executable to ram:HelloWorld
  9.  
  10.  
  11. ;
  12. ; exec function offsets
  13. ;
  14. _LVOOpenLibrary        EQU    -552
  15. _LVOCloseLibrary    EQU    -414
  16. ;
  17. ; dos function offsets
  18. ;
  19. _LVOOutput        EQU    -60
  20. _LVOWrite        EQU    -48
  21.  
  22. ;
  23. ; program start
  24. ;
  25. start:    lea    DosName(pc),a1
  26.     moveq    #0,d0
  27.     move.l    4,a6            ;load execbase
  28.     jsr    _LVOOpenLibrary(a6)    ;open dos.library
  29.     move.l    d0,DosBase
  30.     beq.s    NoDosLibrary        ;could not open library
  31.  
  32.  
  33.     move.l    d0,a6
  34.     jsr    _LVOOutput(a6)        ;get StdOut handle (handle in d0)
  35.  
  36.     move.l    d0,d1
  37.     move.l    #Text,d2
  38.     moveq    #TextLength,d3
  39.     move.l    DosBase,a6
  40.     jsr    _LVOWrite(a6)        ;write text to StdOut
  41.  
  42.  
  43. Exit:    move.l    DosBase,a1
  44.     move.l    4,a6
  45.     jsr    _LVOCloseLibrary(a6)    ;close dos.library
  46.  
  47. NoDosLibrary:
  48.     moveq    #0,d0            ;set AmigaDOS return code
  49.     rts                ;exit program
  50.  
  51.  
  52. ;
  53. ; data
  54. ;
  55. Text:        DC.B    "Hello World!",$a,0
  56. TextLength    EQU    *-Text
  57.  
  58. DosName:    DC.B    "dos.library",0
  59.         EVEN
  60.  
  61. DosBase:    DC.L    0
  62.  
  63.     END
  64.